GLOBAL.setmetatable(env, { __index = function(t, k) return GLOBAL.rawget(GLOBAL, k) end })
-- AddTile的具体定义可以去看游戏文件 /scripts/modutil.lua 第356~425行 和 /scripts/tilemanager.lua
-- 导入数据表 这里是通用的定义 如果还要别的东西 需要自己写
-- 这些代码是需要放在 modworldgenmain.lua文件中的 数据表自己随意 附录一份数据表
local tiles = require('core_webber_the_trainer/data/tiles')
-- 地皮纹理文件夹 和 scripts同级  目录固定为： levels/texture
-- return TitleData
for i, data in pairs(tiles) do
    AddTile(
        data.title_name,            -- 地皮名称
        data.land,                  -- 地皮类型
        {
            ground_name = data.key, -- 自定义名字
        },
        {
            name = data.texture,                -- 边缘样式
            noise_texture = data.noise_texture, -- 地皮图片

            -- 定义在地皮上行走的声音
            runsound = data.runsound,
            walksound = data.walksound,
            snowsound = data.snowsound,
            mudsound = data.mudsound,

            flooring = data.flooring,       -- 标记为true则上面不能生长植物
            hard = data.hard,               -- 标记为true则上面不可种植植物
            roadways = data.roadways,       -- 标记为true则玩家在上面可以加速
            cannotbedug = data.cannotbedug, -- 标记为true则不能挖掉

        },
        {
            name = data.mini_name,
            noise_texture = data.mini_noise_texture, -- 地区区块图片
        },
        -- 挖掉的定义
        {
            name = data.product, -- 掉落物的代码 这里填了之后 会自动生成prefab 并且前面加 truf_ 所以我们还需要去添加它的配方 以及注册贴图
            anim = data.product_anim,
            bank_build = data.product_bank_build,
            -- pickupsound = data.product_pickupsound, -- 如果需要，取消注释
        }
    )
    ChangeTileRenderOrder(WORLD_TILES[data.title_name], WORLD_TILES.FARMING_SOIL)
end





-- ======================================================================================================
--[[ 添加植株的分布 ]]
-- ======================================================================================================
--[[
    添加房间“FENFENCAOMEI_1”，用于生成带有草莓丛的季节性地皮区域。
    colour字段定义了房间在世界生成编辑器中的显示颜色。
    value字段指定了该房间使用的地皮类型，这里为WORLD_TILES.DECIDUOUS（季节性地皮）。
    contents字段定义了房间内生成的物品和分布情况：
        countprefabs用于指定某些预制物的固定数量或函数生成数量，这里stella_chester数量为2~4个（2+随机0~2）。
        distributepercent表示房间内可分布物品的密度百分比。
        distributeprefabs定义了可分布的预制物及其权重，权重越高出现概率越大。
--]]


-- AddRoom("STELLA_PINK_LOAD", {
--     colour = { r = .8, g = 1, b = .8, a = .50 }, -- 房间在编辑器中的颜色
--     value = WORLD_TILES.STELLA_BLUE2,            -- 使用蓝色地皮
--     contents = {
--         countprefabs = {
--             -- 生成2~4个stella_coffee（咖啡树）
--             stella_coffee = function() return math.random(5) end,
--             mushroom_light = function() return 1 end, -- 生成1个蘑菇灯
--         },
--         distributepercent = 0.2,                      -- 分布密度为20%
--         distributeprefabs = {
--             moon_tree = 0.1,
--             moonbutterfly = 0.25,
--         }
--     }
-- })


-- AddTask("stella pink load",
-- {	
-- 	--map\lockandkey.lua 里
-- 	-- 锁，其他task的钥匙如果能解开该task的所有锁，那么那个task就可以生成在该task的附近与它相连，必须写
-- 	locks = LOCKS.NONE or {},
-- 	-- 钥匙，必须写
-- 	keys_given = KEYS.PICKAXE or {},
-- 	--区域id。 nil默认是"mainland"大陆地形。"island1" 代表是月岛的地形
-- 	region_id = nil or "island1",
-- 	-- 生成时 起始创建的room
-- 	entrance_room = "STELLA_PINK_LOAD" or nil,
-- 	--上一项执行的概率 为nil 就必定添加entrance_room
-- 	entrance_room_chance = .5 or nil,
-- 	--需要生成的room 遍历这个表的结果是随机的
-- 	room_choices = {
-- 		["STELLA_PINK_LOAD"] = 5,
-- 		-- ["room2"] = function() return math.random(1,4) end,
-- 	},
-- 	-- 无用参数
-- 	room_choices_special = nil,
-- 	-- 这是一个保底地皮类型，功能和room里的相同，必须写
-- 	room_bg = WORLD_TILES.GRASS,
-- 	-- 固定背景room 或 表中随机一个背景room
-- 	background_room = {"BGGrass"} or "BGGrass"or"BGRocky"or"Clearing"or"BGSinkholeRoom"or"BGCaveRoom",--...

-- 	-- 海湾room 没有默认为"Blank" 这个是将地形边缘变为弯弯曲曲的形状
-- 	-- cove_room_max_edges=0 或 cove_room_chance=nil 那么不生成海湾room
-- 	-- 海湾room会与选择的room连接。条件是：不是入口room不是背景room不是起始room，且存在与其他room连接的边，边数量小于等于cove_room_max_edges的，且随机数小于cove_room_chance的
-- 	cove_room_name = nil or "Blank",
-- 	-- 海湾room机会 默认是0.35
-- 	-- 可以成为海湾room后，再判断机会
-- 	cove_room_chance = nil or 0.35,
-- 	-- 海湾(凹形)room 选择要生成海湾room的room最大边数量小于等于这个数
-- 	-- 默认是1
-- 	cove_room_max_edges = nil or 1,

-- 	-- debug用，大概与room的类似，必须写
-- 	colour = {r=1, g=1, b=0, a=1},

-- 	-- 迷宫地形相关联
-- 	maze_tiles = nil or {rooms = {"room_armoury", "hallway_armoury", "room_armoury_two"}, bosses = {"room_armoury_two"}},
-- 	-- 感觉是参与设置获取迷宫room的地块数量？ 默认是8 没有地方赋值过
-- 	maze_tile_size = nil or 8,

-- 	-- 创建全部room的一些行为
-- 	-- 全部room创建好后，额外进行的连接 内部随机两个room连接次数
-- 	crosslink_factor = 2 or nil,
-- 	--环型task room条的首尾相连。hub_room优先级高
-- 	make_loop = true or nil,
-- 	-- 中心romm 车轱辘型task。其他room与hub_room连接
-- 	hub_room = "room_name",


-- 	-- 创建其下room时给room额外添加的地图标签
-- 	room_tags = {"lunacyarea"},

-- 	--必须的预制体 会在全部的预制体已经部署完成了,会判断其数量是否满足。不满足情况下，重开（重新生成）地图。
-- 	required_prefabs = {},

-- 	--有这个参数 说明禁止添加任何的set_piece静态布局。 在月岛的几个就有
-- 	level_set_piece_blocker = nil or true,
-- })

-- AddTaskSetPreInit("default", function(taskset)
--     if taskset.tasks then
--         table.insert(taskset.tasks, "stella pink load")
--     end
-- end)

-- AddRoom("FENFENCAOMEI", {
--     colour = { r = .8, g = 1, b = .8, a = .50 },
--     value = WORLD_TILES.GRASS, --青草地皮
--     contents = {
--         countprefabs = {
--             stella_strawberry_bush = function() return 6 + math.random(3) end
--         },
--         distributepercent = 0.2,
--         distributeprefabs = {
--             fireflies = 0.1,
--             pond = 0.04,
--             flower = 0.7,
--             twiggytree = 0.52,
--             evergreen = 0.22,
--             berrybush = 0.2,
--             green_mushroom = 0.21
--         }
--     }
-- })
-- AddTaskPreInit("Speak to the king", function(task) --“纷纷草莓从”会出现在猪王村附近
--     task.room_choices["STELLA_PINK_LOAD"] = 4
-- end)

-- local modinfo_cave = GetModConfigData('stella_cave')

-- if modinfo_cave then
--     AddTaskPreInit("MudLights", function(task) --“咖啡丛”会出现在荧光果平原附近
--         task.room_choices["STELLA_PINK_LOAD"] = 3
--     end)
-- end


-- -- 调整草地 地皮植株分布
-- AddRoomPreInit("BGGrass", function(room)
--     if room.contents then
--         room.contents.distributeprefabs.stella_coffee = 0.000000001
--     end
-- end)

-- AddRoomPreInit("LightningBluffAntlion", function(room)
--     if room.contents then
--         room.contents.distributeprefabs.stella_coffee = 0.1
--     end
-- end)

-- AddRoomPreInit("LightningBluffOasis", function(room)
--     if room.contents then
--         room.contents.distributeprefabs.stella_coffee = 0.1
--     end
-- end)


-- AddRoomPreInit("LightningBluffLightning", function(room)
--     if room.contents then
--         room.contents.distributeprefabs.stella_coffee = 0.1
--     end
-- end)
